iT邦幫忙

2022 iThome 鐵人賽

DAY 24
0
自我挑戰組

菜鳥前端修練之旅系列 第 24

Day 24 | !DOCTYPE

  • 分享至 

  • xImage
  •  

一般我們在寫 HTML 時最上面都會有一行:

<!DOCTYPE html>

<!DOCTYPE html> 並不是 HTML 標籤,這行的目的是為了告訴瀏覽器當前的文件是什麼類型,這種宣告文件類型稱作 DTD(Document Type Declaration)。

不宣告會怎樣?

如果我們沒有宣告這份文件的類型、或是宣告錯誤類型,可能會導致瀏覽器的渲染方式改變,例如 CSS 開始不聽你的話。會造成這樣的原因是因為瀏覽器的排版引擎不同,而目前的瀏覽器排版引擎有兩種:

  • Quirks mode:怪異模式
  • Standards mode:標準模式

在 HTML5 中只有 <!DOCTYPE html> 一種宣告,只要在開頭添加後就會進入標準模式,反之不宣告就會進入怪異模式。

確認當前模式

想要確認當前模式可以在 console 中輸入:

document.compatMode

這時候會出現兩種結果,分別是:

  • CSS1Compat:代表標準模式(Quirks mode)。
  • BackCompat:代表怪異模式(Standards mode)。

不區分大小寫

沒錯,我們輸入下面幾種都不會影響宣告,因為沒有區分大小寫的問題。

<!DOCTYPE html>
<!DocType html>
<!Doctype html>
<!doctype html>

其他 DOCTYPE

HTML 4.01 Strict

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "//www.w3.org/TR/html4/strict.dtd">

HTML 4.01 Transitional

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "//www.w3.org/TR/html4/loose.dtd">

HTML 4.01 Frameset

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "//www.w3.org/TR/html4/frameset.dtd">

XHTML 1.0 Strict

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "//www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

XHTML 1.0 Transitional

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

XHTML 1.0 Frameset

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "//www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

XHTML 1.1

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "//www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

參考文章


上一篇
Day 23 | use strict
下一篇
Day 25 | Callback Function
系列文
菜鳥前端修練之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言